SQL Server Error Log管理
SQL Server除了每個
數(shù)據庫有Log文件,即LDF文件外,SQL Server自己本身也有一個Error Log,位置存在安裝目錄下,Widows
系統(tǒng)中l(wèi)og文件位于C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Log。
www.2cto.com
Error log的文件數(shù)目可以配置,最多99個,默認6個,文件編號為ERRORLOG.1,2,3,4.....,還有一個文件沒有編號,就叫ERRORLOG,這個文件是SQL Server當前的活動日志文件(active log),這個文件無法刪除,其他的都可以刪除。也就是說,ERRORLOG文件里是最新的日志信息,其他的文件都是以前的信息。
每次SQL Server重啟動,所有的ERRORLOG文件要做一次切換,拿6個log文件來說,具體如下:
刪除ERRORLOG.6中的所有數(shù)據 www.2cto.com
ERRORLOG.5的數(shù)據寫入到ERRORLOG.6中
ERRORLOG.4的數(shù)據寫入到ERRORLOG.5中
ERRORLOG.3的數(shù)據寫入到ERRORLOG.4中
ERRORLOG.2的數(shù)據寫入到ERRORLOG.3中
ERRORLOG.2的數(shù)據寫入到ERRORLOG.1中
ERRORLOG的數(shù)據寫入到ERRORLOG.1中
重新創(chuàng)建ERRORLOG文件
所以,如果SQL Server不重啟,ERRORLOG文件就會變得很大,解決辦法如下:
1. 如果需要保存就得Error log文件,則先把當前的所有ERRORLOG文件copy到其他存儲介質
www.2cto.com
2. 運行命令: EXEC sp_cycle_errorlog,這個命令強制SQL Server做一次Error Log文件的切換
3. 把最大的log 文件刪除
如果需定期切換error log,一般可使用DBCC errorlog命令在一個sql server的agent job 來完成。
create procedure sp_cycle_errorlog
if (not (is_srvrolemember('sysadmin') = 1)) -- Make sure that it is the sysadmin role to execute the code.
begin
return -- here can raise an error.
return(1)
end
dbcc errorlog
return (0)